package com.xq.controller.admin.news.news;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xq.entity.News;
import com.xq.service.news.INewsService;
import lombok.extern.slf4j.Slf4j;
import com.xq.vo.NewsVo;
import com.xq.ex.commom.err.ValidationException;
import org.apache.commons.lang.StringUtils;
import org.springframework.ui.ModelMap;
import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 新闻管理
 * NewsController
 ***************************************
 * 更多精彩B站搜索: 学相伴飞哥
 * 资料下载学习平台：https://www.kuangstudy.com
 * 创世神B站：https://space.bilibili.com/490711252
 ***************************************
 * 创建人:yykk
 * 创建时间：2021年09月15日 15:40:55
 * @version 1.0.0
*/
@Controller
@RequestMapping("/admin/news")
@Slf4j
public class NewsController {

    @Autowired
    private INewsService newsService;


     /**
     * 新闻管理 列表页面
     * @return
     */
     @GetMapping("/list")
     public String list(){
        return "admin/news/list";
      }

      /**
     * 新闻管理 添加页面
     * @return
      */
      @GetMapping("/add")
      public String add(Long id,ModelMap modelMap){
          modelMap.put("id",id);
          return "admin/news/add";
      }


	/**
	 * 新闻管理 列表查询
	 * @path : /api/news/list
     * @method: findNewss
     * @param : newsVo
     * @result : IPage<News>
	 * 创建人:yykk
	 * 创建时间：2021年09月15日 15:40:55
	 * @version 1.0.0
	*/
    @PostMapping("/load")
    @ResponseBody
    public IPage<News> findNewss(@RequestBody NewsVo newsVo) {
        return newsService.findNewsPage(newsVo);
    }


    /**
     * 新闻管理 查询明细
     * @method: get/{id}
     * @path : /api/news/get/{id}
     * @param : id
     * @result : News
     * 创建人:yykk
     * 创建时间：2021年09月15日 15:40:55
     * @version 1.0.0
    */
    @GetMapping("/get/{id}")
    @ResponseBody
    public News getNewsById(@PathVariable("id") String id) {
        if(StringUtils.isEmpty(id)){
            throw new ValidationException(300,"id不允许为空!");
        }
        return newsService.getNewsById(new Long(id));
    }


	/**
	 * 新闻管理 保存&修改
     * @method: saveupdate
	 * @path : /api/news/save
     * @param : news
     * @result : News
	 * 创建人:yykk
	 * 创建时间：2021年09月15日 15:40:55
	 * @version 1.0.0
	*/
    @PostMapping("/saveupdate")
    @ResponseBody
    public News saveupdateNews(@RequestBody News news) {
        return newsService.saveupdateNews(news);
    }


    /**
	 * 新闻管理 刪除
     * @method: delete/{id}
     * @path : /api/news/delete/{id}
     * @param : id
     * @result : int
	 * 创建人:yykk
	 * 创建时间：2021年09月15日 15:40:55
	 * @version 1.0.0
	*/
    @PostMapping("/delete/{id}")
    @ResponseBody
    public int deleteNewsById(@PathVariable("id") String id) {
        if(StringUtils.isEmpty(id)){
            throw new ValidationException(300,"id不允许为空!");
        }
        return newsService.deleteNewsById(new Long(id));
    }
}